<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //使用new来调用函数 或者说发生构造函数调用时  会自动执行下面的操作
        //1.创建或者说构造一个全新的对象
        //2.这个新对象会被执行[[Prototype]]连接
        //3.这个新对象会绑定到函数调用的this
        //4.如果函数没有返回其他对象 那么new表达式中的函数调用会自动返回这个新对象
        function foo(a){
            this.a = a;
        }
        var bar = new foo(2);
        console.log(bar.a);
        //使用new来调用foo(...)时 我们会构造一个新对象并把它绑定到foo(...)调用中的this上
        //new是最后一种可以影响函数调用时this绑定行为的方法  称之为new绑定
    </script>
</body>
</html>